package com.ruoyi.common.constant;

/**
 * WMS的常量类
 */
public class WmsConstants {

    /**
     * 状态 启用
     */
    public static final String WMS_STATUS_ACTIVE = "1";
    /**
     * 状态 停用/禁用
     */
    public static final String WMS_STATUS_INACTIVE = "2";

    /** 系统删除标识 0代表存在 */
    public static final String WMS_DEL_FLAG_ALIVE = "0";

    /** 系统删除标识 2代表删除 */
    public static final String WMS_DEL_FLAG_DELETE = "2";


    // 盘点单据是否出库状态常量start ------------------------------------------------------------------------------
    /**
     * 盘点标识
     */
    public static final String INVENTORY_CHECK_NO = "PD";
    /**
     * 盘点流水标识
     */
    public static final String INVENTORY_FLOW = "PKLS";
    /**
     * 否
     */
    public static final String NOT_OUTBOUND = "0";
    /**
     * 是
     */
    public static final String IS_OUTBOUND = "1";
    // 盘点单据是否出库状态常量end ----------------------------------------------------------------------------------

    // 单据表类型常量start --------------------------------------------------------------------------------------
    /**
     * 辅料单据类型
     */
    public static final String DOC_TYPE_SUPPLEMENT = "1";
    /**
     * 成品单据类型
     */
    public static final String DOC_TYPE_FINISHED_GOODS = "2";
    /**
     * 质检单据类型
     */
    public static final String DOC_TYPE_QUALITY_INSPECTION = "3";
    /**
     * 空托盘单据类型
     */
    public static final String DOC_TYPE_EMPTY_PALLET = "4";
    /**
     * 单据类别 入库
     */
    public static final String DOC_CATEGORY_INBOUND = "1";
    /**
     * 单据类别 出库
     */
    public static final String DOC_CATEGORY_OUTBOUND = "2";


    // 单据表类型常量end ------------------------------------------------------------------------------------------------

    // 储位出入库锁定常量start ------------------------------------------------------------------------------------
    /**
     * 正常状态
     */
    public static final Integer STORAGE_LOCK_NORMAL = 1;
    /**
     * 锁定状态
     */
    public static final Integer STORAGE_LOCK_LOCKED = 2;
    // 储位出入库锁定常量end ----------------------------------------------------------------------------------------

    // 移库单常量start --------------------------------------------------------------------------------------------
    /**
     * 移库单前缀
     */
    public static final String MV_ORDER_NO_PREFIX = "MV";
    /**
     * 移库单状态 等待执行
     */
    public static final String MV_ORDER_STATUS_WAITING = "1";
    /**
     * 移库单状态 正在分配
     */
    public static final String MV_ORDER_STATUS_ALLOCATING = "2";
    /**
     * 移库单状态 正在执行
     */
    public static final String MV_ORDER_STATUS_EXECUTING = "3";
    /**
     * 移库单状态 执行完毕
     */
    public static final String MV_ORDER_STATUS_COMPLETED = "4";
    /**
     * 移库单状态 上传完毕
     */
    public static final String MV_ORDER_STATUS_UPLOADED = "5";
    // 移库单常量end ------------------------------------------------------------------------------------------------

    // 成品标签常量start ------------------------------------------------------------------------------------------------

    /**
     * 成品标签状态 正常
     */
    public static final String LABEL_STATUS_NORMAL = "1";
    /**
     * 检验标识 未检
     */
    public static final String LABEL_INSPECT_FLAG_NOT_INSPECTED = "1";
    /**
     * 检验标识 合格
     */
    public static final String LABEL_INSPECT_FLAG_QUALIFIED = "2";
    /**
     * 是否使用 未使用
     */
    public static final String LABEL_USAGE_NOT_USED = "1";
    /**
     * 是否使用 已使用
     */
    public static final String LABEL_USAGE_USED = "2";
    /**
     * 是否入库 否
     */
    public static final String LABEL_RECEIPT_NOT = "1";
    /**
     * 是否入库 是
     */
    public static final String LABEL_RECEIPT_YES = "2";
    /**
     * 是否重置批次 是
     */
    public static final String LABEL_RESET_BATCH_YES = "1";
    /**
     * 是否重置批次 否
     */
    public static final String LABEL_RESET_BATCH_NO = "2";
    // 成品标签常量end ------------------------------------------------------------------------------------------------

    // 出库任务状态常量start --------------------------------------------------------------------------------------
    /**
     * 出库任务状态 正在执行
     */
    public static final String OUTBOUND_TASK_STATUS_EXECUTING = "1";
    /**
     * 出库任务状态 取消任务
     */
    public static final String OUTBOUND_TASK_STATUS_CANCELLED = "2";
    /**
     * 出库任务状态 下发失败
     */
    public static final String OUTBOUND_TASK_STATUS_FAILED = "3";
    /**
     * 出库任务状态 执行完毕
     */
    public static final String OUTBOUND_TASK_STATUS_COMPLETED = "4";
    // 出库任务状态常量end ----------------------------------------------------------------------------------------

    // 出库任务类型常量start --------------------------------------------------------------------------------------
    /**
     * 出库任务类型 出库任务
     */
    public static final String OUTBOUND_TASK_TYPE_OUTBOUND = "1";
    /**
     * 入库任务类型 入库任务
     */
    public static final String IN_TASK_TYPE = "1";
    /**
     * 出库任务类型 移库任务
     */
    public static final String OUTBOUND_TASK_TYPE_RELOCATION = "2";
    // 出库任务类型常量end ----------------------------------------------------------------------------------------

    // 入库单常量start ------------------------------------------------------------------------------------------------
    /**
     * 入库单状态 等待执行
     */
    public static final String INBOUND_ORDER_STATUS_WAITING = "1";
    /**
     * 入库单状态 正在执行
     */
    public static final String INBOUND_ORDER_STATUS_EXECUTING = "2";
    /**
     * 入库单状态  部分入库
     */
    public static final String INBOUND_ORDER_STATUS_PARTIAL = "3";
    /**
     * 入库单状态 执行完毕
     */
    public static final String INBOUND_ORDER_STATUS_COMPLETED = "4";
    /**
     * 入库单状态 上传完毕
     */
    public static final String INBOUND_ORDER_STATUS_UPLOADED = "5";
    /**
     * 入库单流水标识
     */
    public static final String INBOUND_ORDER_PREFIX = "ASN";

    /** 入库任务状态5 执行完毕 */
    public static final String TASK_STATUS_SUCCESS = "5";
    /** 入库任务状态4 下发失败 */
    public static final String TASK_STATUS_FAIL = "4";
    /** 入库任务状态3 取消任务 */
    public static final String TASK_STATUS_CANCEL = "3";
    /** 入库任务状态2 正在执行 */
    public static final String TASK_STATUS_RUNNING = "2";
    /** 入库任务状态1 等待执行 */
    public static final String TASK_STATUS_WAITING = "1";

    /**
     * 订单来源 SAP
     */
    public static final String INBOUND_SAP_SOURCE = "SAP";
    /**
     * 辅料入库
     */
    public static final Long INBOUND_SUPPLEMENT = 1L;
    /**
     * 辅料出库
     */
    public static final String OUTBOUND_SUPPLEMENT = "1";
    /**
     * 成品入库
     */
    public static final Long INBOUND_FINISHED_GOODS = 2L;
    /**
     * 成品出库
     */
    public static final String OUTBOUND_FINISHED_GOODS = "2";
    // 入库单常量end ------------------------------------------------------------------------------------------------

    // 入库单详情常量start --------------------------------------------------------------------------------------
    /**
     * 入库单详情状态 等待执行
     */
    public static final String INBOUND_ORDER_DETAIL_STATUS_WAITING = "1";
    /**
     * 入库单详情状态 正在执行
     */
    public static final String INBOUND_ORDER_DETAIL_STATUS_EXECUTING = "2";

    /**
     * 入库单详情状态 执行完毕
     */
    public static final String INBOUND_ORDER_DETAIL_STATUS_COMPLETED = "3";
    /**
     * 入库单详情状态 上传执行
     */
    public static final String INBOUND_ORDER_DETAIL_STATUS_UPLOADED = "4";
    // 入库单详情常量end ----------------------------------------------------------------------------------------

    // 入库流水常量start ------------------------------------------------------------------------------------------------
    /**
     * 状态:出库单标识
     */
    public static final String OUTBOUND_ORDER_PREFIX = "CKS";
    /**
     * 入库流水状态 等待执行
     */
    public static final String INBOUND_FLOW_STATUS_WAITING = "1";
    /**
     * 入库流水状态 正在执行
     */
    public static final String INBOUND_FLOW_STATUS_EXECUTING = "2";
    /**
     * 入库流水状态 执行完毕
     */
    public static final String INBOUND_FLOW_STATUS_COMPLETED = "3";
    /**
     * 上架状态 未上架
     */
    public static final String SHELVING_STATUS_NOT_SHELVED = "0";
    /**
     * 上架状态 已上架
     */
    public static final String SHELVING_STATUS_SHELVED = "1";
    /**
     * 入库流水前缀
     */
    public static final String INBOUND_FLOW_PREFIX = "ASNS";
    /**
     * 流水编号前缀
     */
    public static final String NUMBER_PREFIX = "0000";
    // 入库流水常量end ------------------------------------------------------------------------------------------------

    // 入库流水详情常量start --------------------------------------------------------------------------------------
    /**
     * 入库流水详情状态 等待执行
     */
    public static final String INBOUND_FLOW_DETAIL_STATUS_WAITING = "1";
    /**
     * 入库流水详情状态 正在执行
     */
    public static final String INBOUND_FLOW_DETAIL_STATUS_EXECUTING = "2";
    /**
     * 入库流水详情状态 执行完毕
     */
    public static final String INBOUND_FLOW_DETAIL_STATUS_COMPLETED = "3";
    /**
     * 质检状态 待检验
     */
    public static final String QUALITY_STATUS_PENDING = "1";
    /**
     * 质检状态 合格
     */
    public static final String QUALITY_STATUS_QUALIFIED = "2";
    /**
     * 质检状态 不合格
     */
    public static final String QUALITY_STATUS_UNQUALIFIED = "3";
    // 入库流水详情常量end ----------------------------------------------------------------------------------------

    // 出库单常量start ------------------------------------------------------------------------------------------------

    /**
     * 出库单状态 等待执行
     */
    public static final String OUTBOUND_ORDER_STATUS_WAITING = "1";
    /**
     * 出库单状态 正在分配
     */
    public static final String OUTBOUND_ORDER_STATUS_ALLOCATING = "2";
    /**
     * 出库单状态 正在执行
     */
    public static final String OUTBOUND_ORDER_STATUS_EXECUTING = "3";
    /**
     * 出库单状态 执行完毕
     */
    public static final String OUTBOUND_ORDER_STATUS_COMPLETED = "4";
    /**
     * 出库单状态 上传完毕
     */
    public static final String OUTBOUND_ORDER_STATUS_UPLOADED = "5";

    /**
     * 是否缠膜 否
     */
    public static final String IS_PALLETIZED_NO = "2";
    /**
     * 是否缠膜 是
     */
    public static final String IS_PALLETIZED_YES = "1";

    // 出库单常量end ------------------------------------------------------------------------------------------------

    // 出库流水非瘟检测常量start --------------------------------------------------------------------------------------
    /**
     * 出库流水非瘟检测状态 合格
     */
    public static final String OUTBOUND_FLOW_PLAGUE_CHECK_STATUS_QUALIFIED = "1";
    /**
     * 出库流水非瘟检测状态 不合格
     */
    public static final String OUTBOUND_FLOW_PLAGUE_CHECK_STATUS_UNQUALIFIED = "2";
    // 出库流水非瘟检测常量end ----------------------------------------------------------------------------------------

    // 出库流水是否替换新的托盘常量start ------------------------------------------------------------------------------

    /**
     * 出库流水是否替换新的托盘 替换
     */
    public static final Integer OUTBOUND_FLOW_REPLACE_TRAY = 0;
    /**
     * 出库流水是否替换新的托盘 不替换
     */
    public static final Integer OUTBOUND_FLOW_NOT_REPLACE_TRAY = 1;
    // 出库流水是否替换新的托盘常量end ---------------------------------------------------------------------------------

    // 出库流水常量start ------------------------------------------------------------------------------------------------

    /**
     * 出库流水标识
     */
    public static final String OUTBOUND_FLOW_PREFIX = "WA";
    /**
     * 出库流水状态 等待执行
     */
    public static final String OUTBOUND_FLOW_STATUS_WAITING = "1";
    /**
     * 出库流水状态 正在执行
     */
    public static final String OUTBOUND_FLOW_STATUS_EXECUTING = "2";
    /**
     * 出库流水状态 执行完毕
     */
    public static final String OUTBOUND_FLOW_STATUS_COMPLETED = "3";
    // 出库流水常量end ------------------------------------------------------------------------------------------------

    // 出库流水详情常量start --------------------------------------------------------------------------------------
    /**
     * 出库流水详情状态 待拣货
     */
    public static final String OUTBOUND_FLOW_DETAIL_STATUS_AWAIT_PICKING = "1";
    /**
     * 出库流水详情状态 已拣货
     */
    public static final String OUTBOUND_FLOW_DETAIL_STATUS_PICKED = "2";
    /**
     * 是否必须出库 是
     */
    public static final String OUTBOUND_FLOW_DETAIL_MUST_OUTBOUND = "1";
    /**
     * 是否必须出库 否
     */
    public static final String OUTBOUND_FLOW_DETAIL_NOT_MUST_OUTBOUND = "2";
    // 出库流水详情常量end ----------------------------------------------------------------------------------------

    // 出入库任务常量start --------------------------------------------------------------------------------------
    /**
     * 入库任务号
     */
    public static final String INBOUND_TASK_NUMBER_PREFIX = "RK";
    public static final String INBOUND_TASK_NUMBER = "00000";
    /**
     * 出库任务号前缀
     */
    public static final String OUTBOUND_TASK_NUMBER_PREFIX = "Task";
    public static final String OUTBOUND_TASK_NUMBER = "00000";
    /**
     * 盘点任务号
     */
    public static final String INVENTORY_WMS_TASK_NUMBER_PREFIX = "PDTask";
    /**
     * 移库任务号
     */
    public static final String INTRA_WMS_TASK_NUMBER_PREFIX = "MVTask";
    public static final String INTRA_WMS_TASK_NUMBER = "00000";
    // 出入库任务常量end ------------------------------------------------------------------------------------------------

    // AGV出入库任务常量start --------------------------------------------------------------------------------------
    /**
     * AGV入库任务号
     */
    public static final String AGV_INBOUND_TASK_NUMBER_PREFIX = "AGV";
    public static final String AGV_INBOUND_TASK_NUMBER = "00000";
    // AGV出入库任务状态
    public static final String AGV_TASK_STATUS_EXECUTING = "1";
    public static final String AGV_TASK_STATUS_CANCELLED = "2";
    public static final String AGV_TASK_STATUS_FAILED = "3";
    public static final String AGV_TASK_STATUS_COMPLETED = "4";
    // AGV任务类型
    public static final String AGV_TASK_TYPE_OUTBOUND = "1";
    public static final String AGV_TASK_TYPE_INBOUND = "2";
    public static final String AGV_TASK_TYPE_POINT_TO_POINT = "3";
    // AGV任务位置
    public static final String AGV_TASK_ADDRESS_NORTH = "1";
    public static final String AGV_TASK_ADDRESS_SOUTH = "2";
    // AGV出入库任务常量end ------------------------------------------------------------------------------------------------

    // 盘点常量start ------------------------------------------------------------------------------------------------

    /**
     * 盘点状态 等待执行
     */
    public static final String INVENTORY_STATUS_WAITING = "1";
    /**
     * 盘点状态 正在分配
     */
    public static final String INVENTORY_STATUS_ALLOCATING = "2";
    /**
     * 盘点状态 正在执行
     */
    public static final String INVENTORY_STATUS_EXECUTING = "3";
    /**
     * 盘点状态 执行完毕
     */
    public static final String INVENTORY_STATUS_COMPLETED = "4";
    /**
     * 盘点状态 待拣货
     */
    public static final String INVENTORY_STATUS_AWAIT_PICKING = "1";
    /**
     * 盘点状态 已拣货
     */
    public static final String INVENTORY_STATUS_PICKED = "2";
    // 盘点常量end ------------------------------------------------------------------------------------------------

    // 调整单据常量start ------------------------------------------------------------------------------------------------

    /**
     * 调整单据状态 待调整
     */
    public static final String ADJUSTMENT_STATUS_PENDING = "1";
    /**
     * 调整单据状态 调整完毕
     */
    public static final String ADJUSTMENT_STATUS_COMPLETED = "2";
    // 调整单据常量end ------------------------------------------------------------------------------------------------

    // 托盘常量start ------------------------------------------------------------------------------------------------

    /**
     * 托盘条码前缀
     */
    public static final String TRAY_BARCODE_PREFIX = "ZD00000";
    /**
     * 托盘初始值
     */
    public static final Integer TRAY_INIT_VALUE = 1;
    /**
     * 托盘状态 未使用
     */
    public static final String TRAY_STATUS_NOT_USED = "1";
    /**
     * 托盘状态 使用中
     */
    public static final String TRAY_STATUS_IN_USE = "2";
    // 托盘常量end ------------------------------------------------------------------------------------------------

    // 库存表（托盘）常量start --------------------------------------------------------------------------------------
    /**
     * 质检状态 待检验
     */
    public static final String REPOSITORY_TRAY_QUALITY_TESTING = "1";
    /**
     * 质检状态 合格
     */
    public static final String REPOSITORY_TRAY_QUALITY_QUALIFIED = "2";
    /**
     * 质检状态 不合格
     */
    public static final String REPOSITORY_TRAY_QUALITY_UNQUALIFIED = "3";
    // 库存表（托盘）常量end ----------------------------------------------------------------------------------------

    // 库存表（箱子）常量start --------------------------------------------------------------------------------------
    /**
     * 质检状态 待检验
     */
    public static final String REPOSITORY_BOX_QUALITY_TESTING = "1";
    /**
     * 质检状态 合格
     */
    public static final String REPOSITORY_BOX_QUALITY_QUALIFIED = "2";
    /**
     * 质检状态 不合格
     */
     public static final String REPOSITORY_BOX_QUALITY_UNQUALIFIED = "3";
     /**
      * 拣货状态 未拣货
      */
     public static final Character REPOSITORY_BOX_PICKING_STATUS_NOT_PICKED = '0';
     /**
      * 拣货状态 已拣货
      */
     public static final Character REPOSITORY_BOX_PICKING_STATUS_PICKED = '1';
    /**
     * 拣货状态 已拣货
     */
    public static final String QUALITY_CHECK_RESULT_PREFIX = "ZJ";
    // 库存表（箱子）常量end ----------------------------------------------------------------------------------------

    // 区域表常量start ------------------------------------------------------------------------------------------------
    /**
     * 区域状态 启用
     */
    public static final String REGION_STATUS_ACTIVE = "1";
    /**
     * 区域状态 停用
     */
    public static final String REGION_STATUS_INACTIVE = "2";
    // 区域表常量end ------------------------------------------------------------------------------------------------

    // 储位地址常量start ------------------------------------------------------------------------------------------------

    /**
     * 储位状态 正常
     */
    public static final String STORAGE_STATUS_NORMAL = "1";

    /**
     * 储位状态 屏蔽
     */
    public static final String STORAGE_STATUS_SHIELD = "2";
    /**
     * 储位状态 空储位
     */
    public static final String STORAGE_STATUS_EMPTY = "1";
    /**
     * 储位状态 有物品
     */
    public static final String STORAGE_STATUS_OCCUPIED = "2";
    /**
     * 储位状态 正在入库
     */
    public static final String STORAGE_STATUS_INBOUND = "3";
    /**
     * 储位状态 正在出库
     */
    public static final String STORAGE_STATUS_OUTBOUND = "4";
    /**
     * 储位状态 正在移入
     */
    public static final String STORAGE_STATUS_MOVING_IN = "5";
    /**
     * 储位状态 正在移出
     */
    public static final String STORAGE_STATUS_MOVING_OUT = "6";
    // 储位地址常量end ------------------------------------------------------------------------------------------------

    // 仓库名称常量start ------------------------------------------------------------------------------------------------

    //仓库类型 1立体库
    public static final String HIGH_BAY_WAREHOUSE = "1";
    //仓库类型 2平库
    public static final String FLAT_WAREHOUSE = "2";
    //仓库类型 3密集库
    public static final String DENSE_WAREHOUSE = "3";
    // 仓库名称常量end ------------------------------------------------------------------------------------------------

    // WCS常量start ------------------------------------------------------------------------------------------------

    /**
     * WCS操作成功
     */
    public static final String WCS_STATUS_SUCCESS = "1";
    /**
     * WCS操作失败
     */
    public static final String WCS_STATUS_ERROR = "2";
    /**
     * WCS未授权
     */
    public static final int WCS_STATUS_UNAUTHORIZED = 401;
    /**
     * WCS访问受限，授权过期
     */
    public static final int WCS_STATUS_FORBIDDEN = 403;
    /**
     * WCS系统警告消息
     */
    public static final int WCS_STATUS_WARNING = 601;
    // WCS常量end ------------------------------------------------------------------------------------------------

    // 其他常量start ------------------------------------------------------------------------------------------------

    /**
     * 出库取消拣货判断，回库托盘申请巷道标识
     */
    public static final String WCS_HK_TRAY_CODE = "HKTrayCode";
// 其他常量end ------------------------------------------------------------------------------------------------

    /** 质检单标识 */
    public static final String QUALITY_RESULT_NO = "ZJ";

    /** 前缀开头字母 */
    public static final String WATER_NUMBER = "0000";

    /** 系统名称 */
    public static final String WMS_SYSTEM_NAME = "WMS";

    /** 工位口 1入库口 */
    public static final String PORT_TYPE_INBOUND = "1";

    /** 工位口 2出库口 */
    public static final String PORT_TYPE_OUTBOUND = "2";

    /** 工位口 3可出可入口 */
    public static final String PORT_TYPE_BOTH = "3";

    /** 任务类型 1入库任务 */
    public static final String TASK_TYPE_INBOUND = "1";

    /** 任务类型 2出库任务 */
    public static final String TASK_TYPE_OUTBOUND = "2";

    /** 任务类型 3盘点任务 */
    public static final String TASK_TYPE_INVENTORY = "3";

    /** 任务类型 4移库任务 */
    public static final String TASK_TYPE_MOVE = "4";

    /** 任务类型 5AGV任务 */
    public static final String TASK_TYPE_AGV = "5";

    /** 空托入库 设置托盘对应 物料编码 */
    public static final String WMS_TP_MATERIAL_CODE = "TP001";

    /** 空托入库 设置托盘对应 物料名称 */
    public static final String WMS_TP_MATERIAL_NAME = "空托盘";
}